/*
 * Пакет "Экосистема"
 * реализует модель экологической системы
 */
package vitarium.ecosystem;

import java.awt.Image;
import javax.swing.ImageIcon;

/** Элемент экосистемы */
public class EcoSystemElement {

    /** Экосистема, в которой находится элемент */
    protected EcoSystem world;
    /** Биогенные элементы */
    /** Вода */
    protected int water;
    /** Энергия */
    protected int energy;
    /** Детрит */
    protected int detritus;
    /** Органика */
    protected int organics;
    /** Гумус */
    protected int humus;
    // Координаты
    /** Долгота */
    protected int longitude; //  с Запада на Восток - нумерация с 0
    /** Широта  */
    protected int latitude; // с Севера на Юг - нумерация с 0
    /** Изображение  */
    private Image image;

    public EcoSystemElement(EcoSystem world, int longitude, int latitude, int water, int energy, int detritus, int organics, int humus, String imagePath) {
        this.world = world;
        this.longitude = longitude;
        this.latitude = latitude;
        this.water = water;
        this.energy = energy;
        this.detritus = detritus;
        this.organics = organics;
        this.humus = humus;
        try {
            this.image = new ImageIcon(this.getClass().getResource(imagePath)).getImage();
        } catch (NullPointerException nullex) {
            // Не обнаружено изображение
        }
    }

    /** Возвращает долготу */
    public int getLongitude() {
        return longitude;
    }

    /** Возвращает Широту */
    public int getLatitude() {
        return latitude;
    }

    /** Устанавливает долготу */
    public void setLongitude(int newLongitude) {
        if (newLongitude < this.world.getSizeFromWestToEast() & newLongitude >= 0) {
            longitude = newLongitude;
       }

    }

    /** Устанавливает Широту */
    public void setLatitude(int newLatitude) {
        if (newLatitude < this.world.getSizeFromNorthToSouth() & newLatitude >= 0) {
            latitude = newLatitude;
        }

    }

    /** Возвращает изображение */
    public Image getPicture() {
        return this.image;

    }

    /** Вывод и изменение основных характеристик элемента экосистемы */
    /** Вывод количества воды */
    public int getWater() {
        return water;
    }

    /** Задание количества воды */
    public void setWater(int water) {
        this.water = water;
    }

    /** Вывод количества энергии (в псевдокалориях) */
    public int getEnergy() {
        return energy;
    }

    /** Задание количества энергии */
    public void setEnergy(int energy) {
        this.energy = energy;
    }

    /** Вывод количества детрита */
    public int getdetritus() {
        return detritus;
    }

    /** Задание количества детрита */
    public void setdetritus(int detritus) {
        this.detritus = detritus;
    }

    /** Вывод количества органики */
    public int getorganics() {
        return organics;
    }

    /** Задание количества органики */
    public void setorganics(int organics) {
        this.organics = organics;
    }

    /** Задание количества гумуса */
    public void sethumus(int humus) {
        this.humus = humus;
    }

    /** Вывод количества гумуса */
    public int gethumus() {
        return humus;
    }

}

